home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / xchat / xchat-plugin.h
C/C++ Source or Header  |  2005-10-18  |  9KB  |  335 lines

  1. /* You can distribute this header with your plugins for easy compilation */
  2. #ifndef XCHAT_PLUGIN_H
  3. #define XCHAT_PLUGIN_H
  4.  
  5. #include <time.h>
  6.  
  7. #define XCHAT_IFACE_MAJOR    1
  8. #define XCHAT_IFACE_MINOR    9
  9. #define XCHAT_IFACE_MICRO    11
  10. #define XCHAT_IFACE_VERSION    ((XCHAT_IFACE_MAJOR * 10000) + \
  11.                  (XCHAT_IFACE_MINOR * 100) + \
  12.                  (XCHAT_IFACE_MICRO))
  13.  
  14. #define XCHAT_PRI_HIGHEST    127
  15. #define XCHAT_PRI_HIGH        64
  16. #define XCHAT_PRI_NORM        0
  17. #define XCHAT_PRI_LOW        (-64)
  18. #define XCHAT_PRI_LOWEST    (-128)
  19.  
  20. #define XCHAT_FD_READ        1
  21. #define XCHAT_FD_WRITE        2
  22. #define XCHAT_FD_EXCEPTION    4
  23. #define XCHAT_FD_NOTSOCKET    8
  24.  
  25. #define XCHAT_EAT_NONE        0    /* pass it on through! */
  26. #define XCHAT_EAT_XCHAT        1    /* don't let xchat see this event */
  27. #define XCHAT_EAT_PLUGIN    2    /* don't let other plugins see this event */
  28. #define XCHAT_EAT_ALL        (XCHAT_EAT_XCHAT|XCHAT_EAT_PLUGIN)    /* don't let anything see this event */
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. typedef struct _xchat_plugin xchat_plugin;
  35. typedef struct _xchat_list xchat_list;
  36. typedef struct _xchat_hook xchat_hook;
  37. #ifndef PLUGIN_C
  38. typedef struct _xchat_context xchat_context;
  39. #endif
  40.  
  41. #ifndef PLUGIN_C
  42. struct _xchat_plugin
  43. {
  44.     /* these are only used on win32 */
  45.     xchat_hook *(*xchat_hook_command) (xchat_plugin *ph,
  46.             const char *name,
  47.             int pri,
  48.             int (*callback) (char *word[], char *word_eol[], void *user_data),
  49.             const char *help_text,
  50.             void *userdata);
  51.     xchat_hook *(*xchat_hook_server) (xchat_plugin *ph,
  52.            const char *name,
  53.            int pri,
  54.            int (*callback) (char *word[], char *word_eol[], void *user_data),
  55.            void *userdata);
  56.     xchat_hook *(*xchat_hook_print) (xchat_plugin *ph,
  57.           const char *name,
  58.           int pri,
  59.           int (*callback) (char *word[], void *user_data),
  60.           void *userdata);
  61.     xchat_hook *(*xchat_hook_timer) (xchat_plugin *ph,
  62.           int timeout,
  63.           int (*callback) (void *user_data),
  64.           void *userdata);
  65.     xchat_hook *(*xchat_hook_fd) (xchat_plugin *ph,
  66.            int fd,
  67.            int flags,
  68.            int (*callback) (int fd, int flags, void *user_data),
  69.            void *userdata);
  70.     void *(*xchat_unhook) (xchat_plugin *ph,
  71.           xchat_hook *hook);
  72.     void (*xchat_print) (xchat_plugin *ph,
  73.          const char *text);
  74.     void (*xchat_printf) (xchat_plugin *ph,
  75.           const char *format, ...);
  76.     void (*xchat_command) (xchat_plugin *ph,
  77.            const char *command);
  78.     void (*xchat_commandf) (xchat_plugin *ph,
  79.         const char *format, ...);
  80.     int (*xchat_nickcmp) (xchat_plugin *ph,
  81.            const char *s1,
  82.            const char *s2);
  83.     int (*xchat_set_context) (xchat_plugin *ph,
  84.            xchat_context *ctx);
  85.     xchat_context *(*xchat_find_context) (xchat_plugin *ph,
  86.             const char *servname,
  87.             const char *channel);
  88.     xchat_context *(*xchat_get_context) (xchat_plugin *ph);
  89.     const char *(*xchat_get_info) (xchat_plugin *ph,
  90.         const char *id);
  91.     int (*xchat_get_prefs) (xchat_plugin *ph,
  92.          const char *name,
  93.          const char **string,
  94.          int *integer);
  95.     xchat_list * (*xchat_list_get) (xchat_plugin *ph,
  96.         const char *name);
  97.     void (*xchat_list_free) (xchat_plugin *ph,
  98.          xchat_list *xlist);
  99.     const char * const * (*xchat_list_fields) (xchat_plugin *ph,
  100.            const char *name);
  101.     int (*xchat_list_next) (xchat_plugin *ph,
  102.          xchat_list *xlist);
  103.     const char * (*xchat_list_str) (xchat_plugin *ph,
  104.         xchat_list *xlist,
  105.         const char *name);
  106.     int (*xchat_list_int) (xchat_plugin *ph,
  107.         xchat_list *xlist,
  108.         const char *name);
  109.     void * (*xchat_plugingui_add) (xchat_plugin *ph,
  110.              const char *filename,
  111.              const char *name,
  112.              const char *desc,
  113.              const char *version,
  114.              char *reserved);
  115.     void (*xchat_plugingui_remove) (xchat_plugin *ph,
  116.             void *handle);
  117.     int (*xchat_emit_print) (xchat_plugin *ph,
  118.             const char *event_name, ...);
  119.     int (*xchat_read_fd) (xchat_plugin *ph,
  120.             void *src,
  121.             char *buf,
  122.             int *len);
  123.     time_t (*xchat_list_time) (xchat_plugin *ph,
  124.         xchat_list *xlist,
  125.         const char *name);
  126.     char *(*xchat_gettext) (xchat_plugin *ph,
  127.         const char *msgid);
  128.     void (*xchat_send_modes) (xchat_plugin *ph,
  129.           const char **targets,
  130.           int ntargets,
  131.           int modes_per_line,
  132.           char sign,
  133.           char mode);
  134.     char *(*xchat_strip) (xchat_plugin *ph,
  135.          const char *str,
  136.          int len,
  137.          int flags);
  138.     void (*xchat_free) (xchat_plugin *ph,
  139.         void *ptr);
  140. };
  141. #endif
  142.  
  143.  
  144. xchat_hook *
  145. xchat_hook_command (xchat_plugin *ph,
  146.             const char *name,
  147.             int pri,
  148.             int (*callback) (char *word[], char *word_eol[], void *user_data),
  149.             const char *help_text,
  150.             void *userdata);
  151.  
  152. xchat_hook *
  153. xchat_hook_server (xchat_plugin *ph,
  154.            const char *name,
  155.            int pri,
  156.            int (*callback) (char *word[], char *word_eol[], void *user_data),
  157.            void *userdata);
  158.  
  159. xchat_hook *
  160. xchat_hook_print (xchat_plugin *ph,
  161.           const char *name,
  162.           int pri,
  163.           int (*callback) (char *word[], void *user_data),
  164.           void *userdata);
  165.  
  166. xchat_hook *
  167. xchat_hook_timer (xchat_plugin *ph,
  168.           int timeout,
  169.           int (*callback) (void *user_data),
  170.           void *userdata);
  171.  
  172. xchat_hook *
  173. xchat_hook_fd (xchat_plugin *ph,
  174.         int fd,
  175.         int flags,
  176.         int (*callback) (int fd, int flags, void *user_data),
  177.         void *userdata);
  178.  
  179. void *
  180. xchat_unhook (xchat_plugin *ph,
  181.           xchat_hook *hook);
  182.  
  183. void
  184. xchat_print (xchat_plugin *ph,
  185.          const char *text);
  186.  
  187. void
  188. xchat_printf (xchat_plugin *ph,
  189.           const char *format, ...);
  190.  
  191. void
  192. xchat_command (xchat_plugin *ph,
  193.            const char *command);
  194.  
  195. void
  196. xchat_commandf (xchat_plugin *ph,
  197.         const char *format, ...);
  198.  
  199. int
  200. xchat_nickcmp (xchat_plugin *ph,
  201.            const char *s1,
  202.            const char *s2);
  203.  
  204. int
  205. xchat_set_context (xchat_plugin *ph,
  206.            xchat_context *ctx);
  207.  
  208. xchat_context *
  209. xchat_find_context (xchat_plugin *ph,
  210.             const char *servname,
  211.             const char *channel);
  212.  
  213. xchat_context *
  214. xchat_get_context (xchat_plugin *ph);
  215.  
  216. const char *
  217. xchat_get_info (xchat_plugin *ph,
  218.         const char *id);
  219.  
  220. int
  221. xchat_get_prefs (xchat_plugin *ph,
  222.          const char *name,
  223.          const char **string,
  224.          int *integer);
  225.  
  226. xchat_list *
  227. xchat_list_get (xchat_plugin *ph,
  228.         const char *name);
  229.  
  230. void
  231. xchat_list_free (xchat_plugin *ph,
  232.          xchat_list *xlist);
  233.  
  234. const char * const *
  235. xchat_list_fields (xchat_plugin *ph,
  236.            const char *name);
  237.  
  238. int
  239. xchat_list_next (xchat_plugin *ph,
  240.          xchat_list *xlist);
  241.  
  242. const char *
  243. xchat_list_str (xchat_plugin *ph,
  244.         xchat_list *xlist,
  245.         const char *name);
  246.  
  247. int
  248. xchat_list_int (xchat_plugin *ph,
  249.         xchat_list *xlist,
  250.         const char *name);
  251.  
  252. time_t
  253. xchat_list_time (xchat_plugin *ph,
  254.          xchat_list *xlist,
  255.          const char *name);
  256.  
  257. void *
  258. xchat_plugingui_add (xchat_plugin *ph,
  259.              const char *filename,
  260.              const char *name,
  261.              const char *desc,
  262.              const char *version,
  263.              char *reserved);
  264.  
  265. void
  266. xchat_plugingui_remove (xchat_plugin *ph,
  267.             void *handle);
  268.  
  269. int 
  270. xchat_emit_print (xchat_plugin *ph,
  271.           const char *event_name, ...);
  272.  
  273. char *
  274. xchat_gettext (xchat_plugin *ph,
  275.            const char *msgid);
  276.  
  277. void
  278. xchat_send_modes (xchat_plugin *ph,
  279.           const char **targets,
  280.           int ntargets,
  281.           int modes_per_line,
  282.           char sign,
  283.           char mode);
  284.  
  285. char *
  286. xchat_strip (xchat_plugin *ph,
  287.          const char *str,
  288.          int len,
  289.          int flags);
  290.  
  291. void
  292. xchat_free (xchat_plugin *ph,
  293.         void *ptr);
  294.  
  295. #if !defined(PLUGIN_C) && defined(WIN32)
  296. #ifndef XCHAT_PLUGIN_HANDLE
  297. #define XCHAT_PLUGIN_HANDLE (ph)
  298. #endif
  299. #define xchat_hook_command ((XCHAT_PLUGIN_HANDLE)->xchat_hook_command)
  300. #define xchat_hook_server ((XCHAT_PLUGIN_HANDLE)->xchat_hook_server)
  301. #define xchat_hook_print ((XCHAT_PLUGIN_HANDLE)->xchat_hook_print)
  302. #define xchat_hook_timer ((XCHAT_PLUGIN_HANDLE)->xchat_hook_timer)
  303. #define xchat_hook_fd ((XCHAT_PLUGIN_HANDLE)->xchat_hook_fd)
  304. #define xchat_unhook ((XCHAT_PLUGIN_HANDLE)->xchat_unhook)
  305. #define xchat_print ((XCHAT_PLUGIN_HANDLE)->xchat_print)
  306. #define xchat_printf ((XCHAT_PLUGIN_HANDLE)->xchat_printf)
  307. #define xchat_command ((XCHAT_PLUGIN_HANDLE)->xchat_command)
  308. #define xchat_commandf ((XCHAT_PLUGIN_HANDLE)->xchat_commandf)
  309. #define xchat_nickcmp ((XCHAT_PLUGIN_HANDLE)->xchat_nickcmp)
  310. #define xchat_set_context ((XCHAT_PLUGIN_HANDLE)->xchat_set_context)
  311. #define xchat_find_context ((XCHAT_PLUGIN_HANDLE)->xchat_find_context)
  312. #define xchat_get_context ((XCHAT_PLUGIN_HANDLE)->xchat_get_context)
  313. #define xchat_get_info ((XCHAT_PLUGIN_HANDLE)->xchat_get_info)
  314. #define xchat_get_prefs ((XCHAT_PLUGIN_HANDLE)->xchat_get_prefs)
  315. #define xchat_list_get ((XCHAT_PLUGIN_HANDLE)->xchat_list_get)
  316. #define xchat_list_free ((XCHAT_PLUGIN_HANDLE)->xchat_list_free)
  317. #define xchat_list_fields ((XCHAT_PLUGIN_HANDLE)->xchat_list_fields)
  318. #define xchat_list_str ((XCHAT_PLUGIN_HANDLE)->xchat_list_str)
  319. #define xchat_list_int ((XCHAT_PLUGIN_HANDLE)->xchat_list_int)
  320. #define xchat_list_time ((XCHAT_PLUGIN_HANDLE)->xchat_list_time)
  321. #define xchat_list_next ((XCHAT_PLUGIN_HANDLE)->xchat_list_next)
  322. #define xchat_plugingui_add ((XCHAT_PLUGIN_HANDLE)->xchat_plugingui_add)
  323. #define xchat_plugingui_remove ((XCHAT_PLUGIN_HANDLE)->xchat_plugingui_remove)
  324. #define xchat_emit_print ((XCHAT_PLUGIN_HANDLE)->xchat_emit_print)
  325. #define xchat_gettext ((XCHAT_PLUGIN_HANDLE)->xchat_gettext)
  326. #define xchat_send_modes ((XCHAT_PLUGIN_HANDLE)->xchat_send_modes)
  327. #define xchat_strip ((XCHAT_PLUGIN_HANDLE)->xchat_strip)
  328. #define xchat_free ((XCHAT_PLUGIN_HANDLE)->xchat_free)
  329. #endif
  330.  
  331. #ifdef __cplusplus
  332. }
  333. #endif
  334. #endif
  335.